package com.teamsun.rptsql;

import com.teamsun.rptcfg.BaseRpt;

import java.util.Map;

/**
 * <p>动态生成SQL</p>
 */
public interface ICreateSQL {

    /**
     * 拼接查询报表明细数据SQL
     * @param baseRpt  报表配置信息
     * @param params 查询条件
     * @return
     */
    String getRptSql(BaseRpt baseRpt, Map<String, String> params);

    /**
     * 拼接汇总查询语句
     * @param baseRpt 报表配置信息
     * @param params 传递参数
     * @param rptSql  明细查询SQL
     * @return
     */
    String getSumRptSql(BaseRpt baseRpt,Map<String, String> params,String rptSql);

    /**
     * 拼接分页查询报表明细数据SQL
     * @param baseRpt 报表配置信息
     * @param params 查询条件
     * @param startIndex 起始行
     * @param endIndex 结束行
     * @return
     */
    String getRptSqlByPage(BaseRpt baseRpt, Map<String, String> params, int startIndex, int endIndex);

    /**
     * 拼接分页汇总查询SQL
     * @param baseRpt 报表配置信息
     * @param params 传递参数
     * @param rptSqlByPage 分页查询SQL
     * @return
     */
    String getSumRptSqlByPage(BaseRpt baseRpt,Map<String, String> params,String rptSqlByPage);

    /**
     * 拼接查询数据量SQL
     * @param baseRpt  报表配置信息
     * @param params 查询条件
     * @return
     */
    String getRptCountSql(BaseRpt baseRpt, Map<String, String> params);
}
